package com.dc.service;


import com.dc.common.ResponseResultVO;
import com.dc.entity.SysDataSource;
import com.dc.entity.ro.SysUserRO;
import com.dc.entity.ro.SysUserRoleRO;

/**
 * 管理员用户接口
 */
public interface SysUserService {

    /**
     * 新增管理员用户信息
     *
     * @param sysUserRO 新增的数据
     * @return
     */
    ResponseResultVO insert(SysUserRO sysUserRO);


    /**
     * 新增数据源
     *
     * @param sysDataSource 新增的数据
     * @return
     */
    ResponseResultVO insertDataSource(SysDataSource sysDataSource);


    /**
     * 切换数据源
     *
     * @param id 要修改的数据源id
     * @return
     */
    ResponseResultVO updateDataSource(String id);

    /**
     * 删除
     *
     * @param id 主键id
     * @return
     */
    ResponseResultVO delete(String id);


    /**
     * 修改管理员用户信息
     *
     * @param sysUserRO 修改的数据
     * @return
     */
    ResponseResultVO update(SysUserRO sysUserRO);

    /**
     * 修改个人账号信息
     *
     * @param sysUserRO 修改的数据
     * @return
     */
    ResponseResultVO updateUserInfo(SysUserRO sysUserRO);


    /**
     * 修改个人账号密码
     *
     * @param sysUserRO 修改的数据
     * @return
     */
    ResponseResultVO updateUserPwd(SysUserRO sysUserRO);


    /**
     * 修改用户头像
     *
     * @param portrait 修改的数据
     * @return
     */
    ResponseResultVO updatePortrait(String portrait);


    /**
     * 解锁
     */
    ResponseResultVO unlock(String id);


    /**
     * 根据id查询管理员用户信息
     *
     * @param id 主键id
     * @return
     */
    ResponseResultVO selectById(String id);

    /**
     * 查询管理员用户数据列表(分页)
     *
     * @param userRO 查询条件
     * @return
     */
    ResponseResultVO selectSysUserList(SysUserRO userRO);


    /**
     * 查询所有用户数据列表(不分页)
     */
    ResponseResultVO selectAllUser();


    /**
     * 修改管理员用户角色
     *
     * @param ro 请求参数
     * @return
     */
    ResponseResultVO updateSysUserRole(SysUserRoleRO ro);


    /**
     * 查询管理员用户角色列表
     *
     * @param id 用户id
     * @return
     */
    ResponseResultVO selectSysUserRoleList(String id);


}
